//
//  XHRTabBarController.m
//  BuDeJie
//
//  Created by haoran on 16/3/31.
//  Copyright © 2016年 xuhaoran. All rights reserved.
//

#import "XHRTabBarController.h"

#import "XHREssenceViewController.h"
#import "XHRPublishViewController.h"
#import "XHRNewViewController.h"
#import "XHRMeViewController.h"
#import "XHRFriendTrendViewController.h"
#import "XHRTabBar.h"
#import "XHRNavigationController.h"


#import "UIImage+Render.h"

@interface XHRTabBarController ()

@end

@implementation XHRTabBarController

+(void)load{

    //获取全局的tabBarItem
//    UITabBarItem * item =  [UITabBarItem appearance];
    
    //获取当前的tabBarItem
    UITabBarItem * item = [UITabBarItem appearanceWhenContainedIn:self, nil];
    
    // 设置所有item的选中时颜色
    // 设置选中文字颜色
    // 创建字典去描述文本
    NSMutableDictionary * dictColor = [NSMutableDictionary dictionary ];
    dictColor[NSForegroundColorAttributeName] = [UIColor blackColor];
    [item setTitleTextAttributes:dictColor forState:UIControlStateSelected];
    
    //设置所有item的字体大小
    //创建字典去描述文本
    NSMutableDictionary * dictFont = [NSMutableDictionary dictionary];
    
    dictFont[NSFontAttributeName] = [UIFont systemFontOfSize:13];
    [item setTitleTextAttributes:dictFont forState:UIControlStateNormal];
   
}

// 分类思想:复用,以后其他项目有同样功能,直接拖过去用
// 改插件 -> 查找插件 -> 插件怎么安装 -> 打开插件代码 -> 搜索 plug -> 安装路径
// 搭建界面 -> 展示内容 -> 调整细节

/*
 tabBar问题
 
 1.图片被渲染 选中按钮 图片不要渲染 1.修改图片 2.通过代码
 
 TODO:
 功能:没有图片提示功能 -> 修改插件
 
 2.选中文字不需要渲染
 3.发布按钮 显示不出来
 分析: 发布按钮 为啥不能显示 -> 发布按钮图片比较大,显示出来 就有问题(修改图片尺寸pass) ->
 图片显示出来 -> 让正常状态下的图片不要渲染
 图片位置:
 UITabBarItem: 不是一个按钮,只是系统给你提供按钮对应模型
 
 
 最终方案: 不能直接使用系统tabBarItem,因为我想要的效果 高亮
 系统tabBarItem对应按钮 只有选中状态
 1.自定义tabBar:继承UITabBar:修改tabBar内部子控件位置
 2.把系统tabBarVc的tabBar换成自己tabBar
 3.重写layoutSubviews
 
 思考在哪写代码 -> 设置多少次 -> 一次 -> viewDidLoad:控制器 
 
 
 
 */

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //添加子控制器
    [self addAllChildViewControllers];
    
    //添加按钮标题和图片  设置tabBar上对应按钮内容 -> 由对应的子控制器的tabBarItem 决定
    [self setAllTittleButton];
    
    // 自定义tabBar
    [self setupTabBar];
    

}

#pragma mark ---- 自定义tabbar
-(void)setupTabBar{
    XHRTabBar * tabBar = [[XHRTabBar alloc]init];
    
    // 替换系统的tabBar KVC:设置readonly属性
    [self setValue:tabBar forKey:@"tabBar"];
    //1.查找有没有set方法
    //2.查找有没有tabBar属性
    //3.查找有没有_tabBar
    
}

#pragma mark ---- 添加子控制器
-(void)addAllChildViewControllers{
    //添加子控制器
    //精华
    XHREssenceViewController *essenceVC = [[XHREssenceViewController alloc]init];
    XHRNavigationController *nav1 = [[XHRNavigationController alloc]initWithRootViewController:essenceVC];
    [self addChildViewController:nav1];
    
    //新帖
    XHRNewViewController *newVC = [[XHRNewViewController alloc]init];
    XHRNavigationController *nav2 = [[XHRNavigationController alloc]initWithRootViewController:newVC];
    [self addChildViewController:nav2];
    
//    //发布
//    XHRPublishViewController *publishVC = [[XHRPublishViewController alloc]init];
//    
//    [self addChildViewController:publishVC];
    
    //关注
    XHRFriendTrendViewController *friendVC = [[XHRFriendTrendViewController alloc]init];
    XHRNavigationController *nav3 = [[XHRNavigationController alloc]initWithRootViewController:friendVC];
    [self addChildViewController:nav3];
    
    //我
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"XHRMeViewController" bundle:[NSBundle mainBundle]];
    // 加载箭头指向控制器
    XHRMeViewController *meVC = [storyboard instantiateInitialViewController];
    XHRNavigationController *nav4 = [[XHRNavigationController alloc]initWithRootViewController:meVC];
    [self addChildViewController:nav4];
    

}

#pragma mark ---- 添加tabbar上的按钮
-(void)setAllTittleButton{
    /**
     *  修改插件, 找到文件夹 /Library/Developer/Xcode/Plug-ins/ 修改/KSImageNamed.ideplugin/Contents/Resources/Completions.plist 文件

     */
    
    //精华
    UINavigationController *nav = self.childViewControllers[0];
    //1.设置标题
    nav.title = @"精华";
    //2.设置按钮图标
    nav.tabBarItem.image = [UIImage imageNamed:@"tabBar_essence_icon"];
    //3设置选中状态图标
    nav.tabBarItem.selectedImage = [UIImage imageNameWithOringinal:@"tabBar_essence_click_icon"];

    //新帖
    UINavigationController *nav1 = self.childViewControllers[1];
    //1.设置标题
    nav1.title = @"新帖";
    //2.设置按钮图标
    nav1.tabBarItem.image = [UIImage imageNameWithOringinal:@"tabBar_new_icon"];
    //3设置选中状态图标
    nav1.tabBarItem.selectedImage = [UIImage imageNameWithOringinal:@"tabBar_new_click_icon"];
    
//    //发布
//    UIViewController *VC = self.childViewControllers[2];
//    //1.设置标题
//    //2.设置按钮图标
//    VC.tabBarItem.image = [UIImage imageNameWithOringinal:@"tabBar_publish_icon"];
//    //3设置选中状态图标
//    VC.tabBarItem.selectedImage = [UIImage imageNameWithOringinal:@"tabBar_publish_click_icon"];
//    
    //关注
    UINavigationController *nav3 = self.childViewControllers[2];
    //1.设置标题
    nav3.title = @"关注";
    //2.设置按钮图标
    nav3.tabBarItem.image = [UIImage imageNameWithOringinal:@"tabBar_friendTrends_icon"];
    //3设置选中状态图标
    nav3.tabBarItem.selectedImage = [UIImage imageNameWithOringinal:@"tabBar_friendTrends_click_icon"];
    
    //我
    UINavigationController *nav4 = self.childViewControllers[3];
    //1.设置标题
    nav4.title = @"我";
    //2.设置按钮图标
    nav4.tabBarItem.image = [UIImage imageNameWithOringinal:@"tabBar_me_icon"];
    //3设置选中状态图标
    nav4.tabBarItem.selectedImage = [UIImage imageNameWithOringinal:@"tabBar_me_click_icon"];

}

@end
